package 剑指offer;

import java.util.Arrays;

public class _21调整数组顺序使奇数位于偶数前面 {
	public static void main(String[] args) {
		System.out.println(Arrays.toString(exchange2(new int[]{2,4,6})));
	}
/**
 * 
 *@time 2021年2月4日下午12:56:38
 * 
 *@param nums
 *@return int[]
 *
 *@see 自己写的代码
 */
    public static int[] exchange1(int[] nums) {
    	if(nums==null||nums.length==1) return nums;  	
    	int left=0,right=nums.length-1;
    	while (left<right) {
			if((nums[left]&1)==0) {
				if((nums[right]&1)!=0) {
					swap(nums,left,right);
				}else {
					swap(nums, left, --right);
				}
			}else {				
				if((nums[right]&1)!=0) {
					swap(nums, left++, right);
					}else {
						right--;
						left++;
					}
			} 
			 
		}
    	   	
		return nums;

    }
    /**
     * 
     *@time 2021年2月4日下午1:00:03
     * 
     *@param nums
     *@return int[]
     * 这个是别人写的代码，从这个可以看出虽然代码的思想一样，但是别人写的更加的完美
     *@see
     */
    public static int[] exchange2(int[] nums) {
    	if(nums==null||nums.length==1) return nums;  	
    	int left=0,right=nums.length-1;
    	while (left<right) {
    		if((nums[left]&1)==1) {
    		left++;
    		continue;
    		}
    		if((nums[right]&1)==0) {
    			right--;
    			continue;
    		}
    		swap(nums, left, right);
    	}
    	return nums;
    }
    public static void swap(int []a,int left,int right) {
		int temp=a[right];
		a[right]=a[left];
		a[left]=temp;
	}
	
}
